package com.sjsu.aws.ephermeralnode;
/**
 * 
 * @author Pawar Deepali
 *
 */
public interface EphemeralService {
	/**
	 * Implementation deletes ephemeral nodes on disconnect
	 * @param tableName
	 * @param uuIdClmnName
	 * @param conditionClmnName
	 */
	public void deleteEphemeralNodesOnDisconnect(String tableName,
	        String uuIdClmnName, String conditionClmnName);
	
	/**
	 * Implementation renew membership
	 * @param tableName
	 * @param uuIdClmnName
	 * @param endTimeStampClmnName
	 * @param conditionClmnName
	 * @param conditionClmnValue
	 * @param timeStamp
	 * @throws Exception
	 */
	public void renewEphemeralMembership(String tableName, String uuIdClmnName,
	        String endTimeStampClmnName, String conditionClmnName,
	        String conditionClmnValue, long timeStamp) throws Exception;
	
	/**
	 * Implementation delete epheral nodes on timeout 
	 * @param tableName
	 * @param uuIdClmnName
	 * @param endTimeStampClmnName
	 * @throws Exception
	 */
	public void deleteTimeOutSessionsForEphemeralNode(String tableName,
	        String uuIdClmnName, String endTimeStampClmnName) throws Exception;
	
}
